/**
 * API配置文件 - 用于灵活控制API调用方式
 */

// 配置开关
const CONFIG = {
  // 是否使用代理模式
  // true: 使用相对路径 '/api'，需要webpack代理
  // false: 使用完整URL 'http://localhost:8080/api'，需要后端CORS
  USE_PROXY: false, // 改为直连模式
  
  // SSE是否使用代理模式（可以与API代理独立控制）
  // true: SSE使用代理
  // false: SSE直连后端，需要后端CORS
  SSE_USE_PROXY: false, // 保持直连模式
  
  // 后端服务地址
  BACKEND_HOST: 'http://localhost:8080',
  
  // API基础路径
  API_BASE_PATH: '/api'
}

/**
 * 获取API基础URL
 */
export function getApiBaseURL() {
  return CONFIG.USE_PROXY ? CONFIG.API_BASE_PATH : `${CONFIG.BACKEND_HOST}${CONFIG.API_BASE_PATH}`
}

/**
 * 获取完整的API URL
 * @param {string} endpoint - API端点
 */
export function getApiURL(endpoint) {
  const baseURL = getApiBaseURL()
  return `${baseURL}${endpoint.startsWith('/') ? '' : '/'}${endpoint}`
}

/**
 * 获取SSE URL（支持独立的代理控制）
 * @param {string} endpoint - SSE端点
 */
export function getSSEURL(endpoint) {
  // SSE连接可以独立控制是否使用代理
  if (CONFIG.SSE_USE_PROXY) {
    // 使用代理模式
    return `${CONFIG.API_BASE_PATH}${endpoint.startsWith('/') ? '' : '/'}${endpoint}`
  } else {
    // 直连模式，需要后端CORS支持
    return `${CONFIG.BACKEND_HOST}${CONFIG.API_BASE_PATH}${endpoint.startsWith('/') ? '' : '/'}${endpoint}`
  }
}

/**
 * 检查当前是否使用代理模式
 */
export function isProxyMode() {
  return CONFIG.USE_PROXY
}

/**
 * 切换SSE代理模式
 * @param {boolean} useProxy - 是否使用代理
 */
export function setSSEProxyMode(useProxy) {
  CONFIG.SSE_USE_PROXY = useProxy
  console.log(`SSE代理模式已${useProxy ? '启用' : '禁用'}`)
}

/**
 * 获取SSE代理模式状态
 */
export function isSSEProxyMode() {
  return CONFIG.SSE_USE_PROXY
}

export default CONFIG